﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ServoDrivesLibAbstract
{
    public enum CardResetStatus
    {
        Cool = 1,
        Software = 2,
        Origin = 3,
    }

    public interface IControlCard
    {
        IEtherCATMode EtherCATControl { get; }
        IServoControl ServoControl { get; }

        /// <summary>
        /// 板卡初始化
        /// </summary>
        /// <returns>返回板卡数量</returns>
        int Init();

        /// <summary>
        /// 硬件复位所有板卡
        /// </summary>
        /// <param name="status">负载状态</param>
        /// <returns>返回错误码</returns>
        int Rest(CardResetStatus status);

        /// <summary>
        /// 关闭板卡
        /// </summary>
        /// <returns>返回错误</returns>
        int Close();

        /// <summary>
        /// 下载配置文件
        /// </summary>
        /// <returns>错误码</returns>
        int DownloadMemFile();
    }
}